﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using System.Data;

namespace Chillis.CRM.Data
{
    public class DPublicacion : Conexion
    {
        /*
        static DPublicacion()
        {
        }
        private DPublicacion()
        {
        }

        private static DPublicacion _instancia = new DPublicacion();
        public static DPublicacion Instancia
        {
            get { return _instancia; }
        }


        public int RegistrarPublicacion(Publicacion publicacion)
        {
            string qry = "usp_RegistrarPublicacion";

            var db = CrearBaseDatos();
            var objeto = db.ExecuteNonQuery(qry,
                publicacion.IdRedSocial,
                publicacion.IdTipoPublicacion,
                1,
                publicacion.Contenido,
                publicacion.PostId
                );

            return (int)objeto;
        }

    }

    public class DComentario : Conexion
    {

        static DComentario()
        {
        }
        private DComentario()
        {
        }

        private static DComentario _instancia = new DComentario();
        public static DComentario Instancia
        {
            get { return _instancia; }
        }

        #region Helper Publicacion

        private ConsultaComentario CreaConsultaComentario(DataRow fila)
        {
            var publicacion = new ConsultaComentario();

            publicacion.IdComentario = fila.Field<int>("IdComentario");
            publicacion.IdPublicacion = fila.Field<int>("IdPublicacion");
            publicacion.RedSocial = fila.Field<string>("RedSocial");
            publicacion.Seguidor = fila.Field<string>("Seguidor");
            publicacion.Contenido = fila.Field<string>("Contenido");
            publicacion.FechaImportacion = fila.Field<string>("FechaImportacion");

            return publicacion;
        }

        private IList<ConsultaComentario> CreaConsultaComentario(DataTable tabla)
        {
            var lista = new List<ConsultaComentario>();

            foreach (DataRow fila in tabla.Rows)
            {
                lista.Add(CreaConsultaComentario(fila));
            }

            return lista;
        }

        private DetalleComentario CreaDetalleComentario(DataRow fila)
        {
            var publicacion = new DetalleComentario();

            publicacion.IdComentario = fila.Field<int>("IdComentario");
            publicacion.IdTipoComentario = fila.Field<int>("IdTipoComentario");
            publicacion.IdClaseComentario = fila.Field<int>("IdClaseComentario");
            publicacion.Contenido = fila.Field<string>("Contenido");
            publicacion.Seguidor = fila.Field<string>("Seguidor");

            return publicacion;
        }

        #endregion

        public string ObtenerPostId(int idComentario)
        {
            string qry = "usp_ObtenerPostId";

            var db = CrearBaseDatos();
            var objeto = db.ExecuteScalar(qry, idComentario);

            return (string)objeto;
        }

        public int ActualizarComentario(Comentario comentario)
        {
            string qry = "usp_ActualizarComentario";

            var db = CrearBaseDatos();
            var objeto = db.ExecuteNonQuery(qry,
                comentario.IdComentario,
                comentario.IdTipoComentario,
                comentario.IdClaseComentario
                );

            return (int)objeto;
        }

        public DetalleComentario ObtenerDetalleComentario(int idComentario)
        {
            string qry = "usp_ObtenerDetalleComentario";

            var db = CrearBaseDatos();
            var ds = db.ExecuteDataSet(qry, idComentario);

            return CreaDetalleComentario(ds.Tables[0].Rows[0]);
        }

        public IList<ConsultaComentario> ObtenerComentarios(DateTime fechaInicio, DateTime fechaFin)
        {

            string qry = "usp_ObtenerComentarios";

            var db = CrearBaseDatos();
            var ds = db.ExecuteDataSet(qry, fechaInicio, fechaFin);


            return CreaConsultaComentario(ds.Tables[0]);

        }

        public IList<ConsultaComentario> ObtenerUltimosComentarios()
        {

            string qry = "usp_ObtenerUltimosComentarios";

            var db = CrearBaseDatos();
            var ds = db.ExecuteDataSet(qry);


            return CreaConsultaComentario(ds.Tables[0]);

        }
        */
    }

}
